package cn.calin.day05.demo29Calendar;

import java.net.CacheRequest;
import java.util.Calendar;
import java.util.Date;

/*
    Calendar类的成员方法：

* */
public class Demo02Calendar {
    public static void main(String[] args) {
        demo04();
    }
        /*
            public Date getTime():返回一个表示此Calendar时间值（从历元转到现在的毫秒偏移值）的Date对象
            把日历对象，转移为日期对象
        * */
    private static void demo04() {
        Calendar c=Calendar.getInstance();
        Date date=c.getTime();
        System.out.println(date);

    }

    /*
        public abstract void add(int field,int amount):根据日历的规则，为给定的日历字段添加或减去指定的时间量
        把指定的字段增加或者减少指定的值
        参数：
            int field:传递指定的日历字段（YEAR，MONTH...）
            int amount:增加/减少的值
                正数：增加
                负数：减少

    * */
    private static void demo03() {
        ////使用getInstance方法获取Calendar对象
        Calendar c=Calendar.getInstance();

        //把年增加俩年
        c.add(Calendar.YEAR,2);
        //月减少三个月
        c.add(Calendar.MONTH,-3);


        int year=c.get(Calendar.YEAR);
        System.out.println(year);

        int month=c.get(Calendar.MONTH);
        System.out.println(month);//西方的月份是0-11月东方的月份是1-12

        int date=c.get(Calendar.DATE);
        System.out.println(date);
    }

    /*
        public void set(int field,int value):将给定的日期字段转换为给定值
        参数:
            int field:传递指定的日历字段（YEAR，MONTH。。。）

    * */
    private static void demo02() {
        //使用getInstance方法获取Calendar对象
        Calendar c=Calendar.getInstance();
        //设置年为9999
        c.set(Calendar.YEAR,9999);
        //设置月为9
        c.set(Calendar.MONTH,9);
        //设置日为9
        c.set(Calendar.DATE,9);

        //同时设置年月日，可以使用set的重载方法
        c.set(8888,8,8);


        int year=c.get(Calendar.YEAR);
        System.out.println(year);

        int month=c.get(Calendar.MONTH);
        System.out.println(month);//西方的月份是0-11月东方的月份是1-12

        int date=c.get(Calendar.DATE);
        System.out.println(date);

        int date_month= c.get(Calendar.DAY_OF_MONTH);
        System.out.println(date_month);//==day
    }


    /*
        public int get(int filed):返回给定日历字段的值
        参数:传递指定的日历字段（YEAR,MONTH...)
        返回值：日历字段代表具体的值
    * */
    private static void demo01() {
        //使用getInstance方法获取Calendar对象
        Calendar c=Calendar.getInstance();
        int year=c.get(Calendar.YEAR);
        System.out.println(year);

        int month=c.get(Calendar.MONTH);
        System.out.println(month);//西方的月份是0-11月东方的月份是1-12

        int date=c.get(Calendar.DATE);
        System.out.println(date);

        int date_month= c.get(Calendar.DAY_OF_MONTH);
        System.out.println(date_month);//==day
    }

}
